home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
GAN-AR04.ZIP
/
AREA.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-05-03
|
9KB
|
581 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer TINTEGER006(300)
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer INTEGER010
Integer INTEGER011
Integer INTEGER012
Integer INTEGER013
Integer INTEGER014
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
String STRING001
String STRING002
String STRING003
String TSTRING004(300)
String STRING005
String STRING006
String STRING007
String TSTRING008(300)
String STRING009
String STRING010
String STRING011
String STRING012
String STRING013
String STRING014
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING025
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
String STRING034
String STRING035
String STRING036
String STRING037
String STRING038
String STRING039
Declare Procedure PROC001()
Declare Procedure PROC002(Integer INTEGER015)
Declare Procedure PROC003(Integer INTEGER016)
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006()
;------------------------------------------------------------------------------
If (1 == 2) Then
Endif
STRING002 = 1
INTEGER008 = 0
INTEGER005 = 0
INTEGER009 = 0
INTEGER010 = 31
STRING025 = GetToken()
If (STRING025 <> "") Then
Dir STRING025
End
Endif
STRING013 = Mid(String(Time()), 4, 2) + Right(String(Time()), 2)
STRING007 = PPEPath() + PPEName() + ".CNF"
If (Exist(STRING007)) Then
STRING015 = Left(ReadLine(STRING007, 1), 4)
STRING016 = Left(ReadLine(STRING007, 2), 4)
STRING017 = Left(ReadLine(STRING007, 3), 4)
STRING018 = Left(ReadLine(STRING007, 4), 4)
STRING019 = Left(ReadLine(STRING007, 5), 4)
STRING020 = Left(ReadLine(STRING007, 6), 4)
STRING021 = Left(ReadLine(STRING007, 7), 4)
STRING022 = Left(ReadLine(STRING007, 8), 4)
STRING023 = Left(ReadLine(STRING007, 9), 4)
STRING024 = Left(ReadLine(STRING007, 10), 4)
STRING011 = ReadLine(STRING007, 12)
INTEGER012 = ReadLine(STRING007, 13)
Else
STRING015 = "@X0B"
STRING016 = "@X03"
STRING017 = "@X08"
STRING018 = "@X0F"
STRING019 = "@X0C"
STRING020 = "@X03"
STRING021 = "@X0B"
STRING022 = "@X07"
STRING023 = "@X09"
STRING024 = "@X1F"
STRING011 = "PKZIP.EXE"
INTEGER012 = 10000
Endif
STRING009 = ReadLine(PCBDat(), 31)
STRING010 = ReadLine(STRING009, INTEGER010 + 33 * CurConf())
FOpen 1, STRING010, 2, 0
FSeek 1, 60, 1
FRead 1, TSTRING008(INTEGER008), 35
:LABEL001
If (Ferr(1)) Goto LABEL002
Inc INTEGER008
FSeek 1, 61, 1
FRead 1, TSTRING008(INTEGER008), 35
Goto LABEL001
:LABEL002
TSTRING008(INTEGER008) = "UPLoaD DiReCToRY"
If (CurSec() >= INTEGER012) Then
Inc INTEGER008
TSTRING008(INTEGER008) = "PRiVaTe UPLoaD DiReCToRY"
Endif
FClose 1
STRING005 = PPEPath() + String(CurConf()) + "dir"
FOpen 1, STRING005, 2, 0
If (Ferr(1)) Then
Goto LABEL004
Else
:LABEL003
If (Ferr(1)) Goto LABEL004
FGet 1, STRING006
TINTEGER006(INTEGER011) = Left(STRING006, 5)
TSTRING004(INTEGER011) = Right(STRING006, 12)
Inc INTEGER011
Goto LABEL003
Endif
:LABEL004
FClose 1
INTEGER003 = INTEGER008
If ((INTEGER003 / 15) * 15 < INTEGER003) Then
INTEGER004 = INTEGER003 / 15 + 1
Else
INTEGER004 = INTEGER003 / 15
Endif
If (INTEGER004 > 1) Then
INTEGER008 = 15
Endif
:LABEL005
Cls
PROC001()
PROC002(STRING002)
While (1) Do
STRING003 = Inkey()
If (STRING003 <> "") Then
If (STRING003 == "DOWN") Then
PROC003(STRING002)
STRING002 = STRING002 + 1
If (INTEGER004 < 2) Then
If (STRING002 == INTEGER002 - 5) STRING002 = 1
Goto LABEL006
Endif
If (STRING002 == INTEGER002 - 5) Then
If (INTEGER008 < INTEGER003) Then
STRING002 = 1
INTEGER005 = INTEGER008 + 1
INTEGER008 = INTEGER008 + 15
If (INTEGER008 > INTEGER003) Then
INTEGER008 = INTEGER003
Endif
Goto LABEL005
Goto LABEL006
Endif
STRING002 = 1
INTEGER005 = 0
INTEGER008 = 15
Goto LABEL005
Endif
:LABEL006
PROC002(STRING002)
Continue
Endif
If (STRING003 == "UP") Then
PROC003(STRING002)
STRING002 = STRING002 - 1
If (INTEGER004 < 2) Then
If (STRING002 == 0) STRING002 = INTEGER002 - 6
Goto LABEL007
Endif
If (STRING002 == 0) Then
If (INTEGER008 < INTEGER003) Then
STRING002 = 1
INTEGER005 = INTEGER008 + 1
INTEGER008 = INTEGER008 + 15
If (INTEGER008 > INTEGER003) Then
INTEGER008 = INTEGER003
Endif
Goto LABEL005
Goto LABEL007
Endif
STRING002 = 1
INTEGER005 = 0
INTEGER008 = 15
Goto LABEL005
Endif
:LABEL007
PROC002(STRING002)
Continue
Endif
If (STRING003 == Chr(13)) Then
PROC006()
If (INTEGER007 == 1) Goto LABEL005
Cls
If (TSTRING008(STRING002 + INTEGER005 - 1) == "PRiVaTe UPLoaD DiReCToRY") Then
Dir "p"
Goto LABEL008
Endif
Dir STRING002 + INTEGER005
:LABEL008
Goto LABEL005
Continue
Endif
If (STRING003 == "M") Then
PROC006()
If (INTEGER007 == 1) Goto LABEL005
PROC005()
Goto LABEL005
Continue
Endif
If (STRING003 == "m") Then
PROC006()
If (INTEGER007 == 1) Goto LABEL005
PROC005()
Goto LABEL005
Continue
Endif
If (STRING003 == Chr(27)) Then
STRING014 = TempPath() + "AR" + STRING013 + String(PcbNode()) + ".ZIP"
If (Exist(STRING014)) Flag STRING014
Break
Endif
Endif
EndWhile
End
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING026
String STRING027
String STRING028
String STRING029
String STRING030
String STRING031
String STRING032
String STRING033
Integer INTEGER013
Integer INTEGER014
If ((INTEGER008 / 15) * 15 < INTEGER008) Then
INTEGER014 = INTEGER008 / 15 + 1
Else
INTEGER014 = INTEGER008 / 15
Endif
STRING027 = STRING015 + "┌" + STRING016 + "─" + STRING017 + "───────@X07 aReaS " + STRING017 + "───────────" + STRING019 + "PaGe @X0E" + String(INTEGER014) + STRING019 + " oF @X0E" + String(INTEGER004) + STRING017 + "─" + STRING016 + "─" + STRING015 + "┐"
STRING028 = STRING015 + "┌" + STRING016 + "─" + STRING017 + "─" + STRING019 + "# oF FiLeS" + STRING017 + "─" + STRING016 + "─" + STRING015 + "┬" + STRING016 + "─" + STRING017 + "─" + STRING019 + "BYTeS iN aRea" + STRING017 + "─" + STRING016 + "─" + STRING015 + "┐"
STRING029 = STRING016 + "│ │"
STRING030 = STRING016 + "│ │ " + STRING016 + "│"
STRING031 = STRING015 + "└" + STRING016 + "─" + STRING017 + "─────────────────────────────────────" + STRING016 + "─" + STRING015 + "┘"
STRING032 = STRING015 + "└" + STRING016 + "─" + STRING017 + "────────────" + STRING016 + "─" + STRING015 + "┴" + STRING016 + "─" + STRING017 + "───────────────" + STRING016 + "─" + STRING015 + "┘"
STRING033 = " @X0E" + STRING020 + " aND @X0E" + STRING020 + " To SeLeCT aRea/SCReeN - @X0EM" + STRING020 + " MaRKs aReaLiSTiNG FoR D/L - @X0EESC" + STRING020 + " QuiT"
INTEGER013 = 2
INTEGER001 = 6
INTEGER002 = 5
AnsiPos 4, 2
Print STRING015, "┌" + STRING016 + "─" + STRING017 + "─────────────────────────────────────────────────────────────────────" + STRING016 + "─", STRING015, "┐"
AnsiPos 6, 3
Print "@X07Node:" + STRING018 + "@NODE@ @SYSDATE@ @X09 @X04GaNDaLFs aRea SeLeCToR! @X09 " + STRING018 + "@SYSTIME@ @TIMELEFT@@X07 MiN LeFT"
AnsiPos 4, 4
Print STRING015, "└" + STRING016 + "─" + STRING017 + "─────────────────────────────────────────────────────────────────────" + STRING016 + "─", STRING015, "┘"
AnsiPos 3, INTEGER002
Print STRING027
AnsiPos 44, INTEGER002
Print STRING028
For INTEGER009 = INTEGER005 To INTEGER008
INTEGER002 = INTEGER002 + 1
AnsiPos 3, INTEGER002
Print STRING029
AnsiPos 44, INTEGER002
Print STRING030
AnsiPos 51, INTEGER002
Print STRING022, TINTEGER006(INTEGER009)
AnsiPos 62, INTEGER002
Print STRING023, TSTRING004(INTEGER009)
Next
INTEGER002 = INTEGER002 + 1
For INTEGER009 = INTEGER005 To INTEGER008
AnsiPos 4, INTEGER001
If (Len(INTEGER009 + 1) == 1) Then
STRING026 = " " + String(INTEGER009 + 1)
Endif
If (Len(INTEGER009 + 1) == 2) Then
STRING026 = " " + String(INTEGER009 + 1)
Endif
Print "@X08", STRING026, STRING021 + " ", TSTRING008(INTEGER009)
INTEGER001 = INTEGER001 + 1
Continue
Next
AnsiPos 3, INTEGER002
Print STRING031
AnsiPos 44, INTEGER002
Print STRING032
AnsiPos 3, INTEGER002 + 1
Print STRING033
EndProc
;------------------------------------------------------------------------------
Procedure PROC002(Integer INTEGER015)
AnsiPos 8, 6 + INTEGER015 - 1
STRING001 = ScrText(8, 6 + INTEGER015 - 1, 35, 1)
Print STRING024, Upper(ScrText(8, 6 + INTEGER015 - 1, 35, 0))
PROC004()
EndProc
;------------------------------------------------------------------------------
Procedure PROC003(Integer INTEGER016)
AnsiPos 8, 6 + INTEGER016 - 1
Print "@X0F", STRING001
PROC004()
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
AnsiPos 1, 22
Color 0
Print " "
Backup 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
String STRING034
String STRING035
String STRING036
Integer INTEGER017
Integer INTEGER018
Integer INTEGER019
INTEGER018 = 31
INTEGER019 = 0
STRING034 = ReadLine(PCBDat(), 31)
INTEGER017 = ReadLine(PCBDat(), 108)
STRING035 = ReadLine(STRING034, INTEGER018)
If (CurConf() > 0) Then
INTEGER018 = INTEGER018 + 33 * CurConf()
STRING035 = ReadLine(STRING034, INTEGER018)
Endif
If (Exist(STRING035)) Then
FOpen 3, STRING035, 2, 0
FSeek 3, 0, 1
FRead 3, STRING036, 30
If (Ferr(3)) Goto LABEL009
If (STRING002 + INTEGER005 == 1) Goto LABEL010
FSeek 3, 96 * (STRING002 + INTEGER005 - 1), 0
FRead 3, STRING036, 30
If (Ferr(3)) Goto LABEL009
Goto LABEL010
:LABEL009
FClose 3
Goto LABEL011
:LABEL010
FClose 3
Copy STRING036, TempPath() + String(CurConf()) + "file" + String(STRING002 + INTEGER005) + "." + String(PcbNode())
Shell 1, STRING012, STRING011, TempPath() + "AR" + STRING013 + String(PcbNode()) + " " + TempPath() + String(CurConf()) + "file" + String(STRING002 + INTEGER005) + "." + String(PcbNode())
Delete TempPath() + String(CurConf()) + "file" + String(STRING002 + INTEGER005) + "." + String(PcbNode())
Endif
:LABEL011
EndProc
;------------------------------------------------------------------------------
Procedure PROC006()
String STRING037
String STRING038
String STRING039
Integer INTEGER020
Integer INTEGER021
Integer INTEGER022
Integer INTEGER023
Integer INTEGER024
INTEGER007 = 0
STRING037 = PPEPath() + PPEName() + ".CNF"
If (Exist(STRING037)) Then
INTEGER023 = 17
INTEGER020 = ReadLine(STRING037, 16)
For INTEGER022 = 1 To INTEGER020
If (ReadLine(STRING037, INTEGER023) == String(CurConf())) Then
Inc INTEGER023
INTEGER021 = ReadLine(STRING037, INTEGER023)
Inc INTEGER023
STRING038 = ReadLine(STRING037, INTEGER023)
Inc INTEGER023
If (STRING002 < 3) Then
INTEGER024 = 4
Goto LABEL012
Endif
If (STRING002 > 12) Then
INTEGER024 = 0
Goto LABEL012
Endif
INTEGER024 = 4
:LABEL012
If (STRING002 + INTEGER005 == INTEGER021) Then
AnsiPos 8, STRING002 + 2 + INTEGER024
Print "@X0B╔@X03═@X08════════════@X03═@X0B═@X03═@X08══════════════@X03═@X0B╗"
AnsiPos 8, STRING002 + 3 + INTEGER024
Print "@X03║ @X03║"
AnsiPos 8, STRING002 + 4 + INTEGER024
Print "@X0B╚@X03═@X08════════════@X03═@X0B═@X03═@X08══════════════@X03═@X0B╝"
AnsiPos 10, STRING002 + 3 + INTEGER024
InputStr "@X0EPaSSWoRD@X0B:@X0D", STRING039, 3, 16, Mask_Ascii(), 1 + 2 + 8
If (STRING039 <> Upper(STRING038)) INTEGER007 = 1
Break
Endif
Continue
Endif
INTEGER023 = INTEGER023 + 3
Next
Endif
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 2 Cls
; 1 Color
; 81 Goto
; 105 Let
; 19 Print
; 49 If
; 3 FOpen
; 4 FClose
; 1 FGet
; 1 Delete
; 1 InputStr
; 6 Inc
; 1 Shell
; 3 Dir
; 20 AnsiPos
; 1 Backup
; 4 FSeek
; 4 FRead
; 1 Copy
; 1 Flag
; 6 EndProc
;
;
; ■ Functions used :
;
; 5 *
; 6 /
; 175 +
; 10 -
; 20 ==
; 3 <>
; 10 <
; 3 <=
; 5 >
; 7 >=
; 39 !
; 6 &&
; 3 ||
; 2 Len(
; 2 Upper()
; 1 Mid()
; 11 Left()
; 2 Right()
; 5 Ferr()
; 2 Chr()
; 2 Time()
; 1 Inkey()
; 19 String()
; 1 Mask_Ascii()
; 8 CurConf()
; 3 PCBDat()
; 3 PPEPath()
; 5 PcbNode()
; 22 ReadLine()
; 1 CurSec()
; 1 GetToken()
; 4 Exist()
; 2 PPEName()
; 5 TempPath()
; 2 ScrText()
;
;------------------------------------------------------------------------------
;
; Analysis flags : Sfd
;
; S - Shell to DOS ■ 5
; This may be normal if the PPE need to execute an external command,
; but may be actually anything... nasty (formating HD, rebooting,...)
; or usefull (sorting, maintenance,...). Check!
; ■ Search for : SHELL
;
; f - Flag files for download ■ 3
; This may be normal if a PPE needs to send some files, but since
; this statement allows flagging of any file on the hard disk, you
; have to be carefull. Check!
; ■ Search for : FLAG
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 3 For/Next
; 1 While/EndWhile
; 33 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------